home *** CD-ROM | disk | FTP | other *** search
- unit testFileSyncMon1;
-
- interface
-
- uses
- Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
- ExtCtrls, GpFileSyncMonitors, StdCtrls;
-
- type
- TfrmMain = class(TForm)
- GpFileMutexMonitor1: TGpFileMutexMonitor;
- grpMutexMon: TGroupBox;
- lblMutex: TLabel;
- btnAcquire: TButton;
- btnRelease: TButton;
- lbMutex: TListBox;
- grpGroupMon: TGroupBox;
- lblGroup: TLabel;
- btnJoinGroup: TButton;
- btnLeaveGroup: TButton;
- lbGroup: TListBox;
- GpFileGroupMonitor1: TGpFileGroupMonitor;
- procedure GpFileMutexMonitor1Acquired(Sender: TObject);
- procedure GpFileMutexMonitor1Released(Sender: TObject);
- procedure btnAcquireClick(Sender: TObject);
- procedure btnReleaseClick(Sender: TObject);
- procedure GpFileGroupMonitor1Empty(Sender: TObject);
- procedure GpFileGroupMonitor1NotEmpty(Sender: TObject);
- procedure btnJoinGroupClick(Sender: TObject);
- procedure btnLeaveGroupClick(Sender: TObject);
- private
- procedure Log(lb: TListBox; msg: string);
- public
- end;
-
- var
- frmMain: TfrmMain;
-
- implementation
-
- {$R *.DFM}
-
- procedure TfrmMain.GpFileMutexMonitor1Acquired(Sender: TObject);
- begin
- lblMutex.Caption := '<Acquired>';
- Log(lbMutex,'>Acquired');
- end; { TfrmMain.GpFileMutexMonitor1Acquired }
-
- procedure TfrmMain.GpFileMutexMonitor1Released(Sender: TObject);
- begin
- lblMutex.Caption := '>Released<';
- Log(lbMutex,'>Released');
- end; { TfrmMain.GpFileMutexMonitor1Released }
-
- procedure TfrmMain.Log(lb: TListBox; msg: string);
- begin
- lb.ItemIndex := lb.Items.Add(msg);
- end; { TfrmMain.Log }
-
- procedure TfrmMain.btnAcquireClick(Sender: TObject);
- begin
- if GpFileMutexMonitor1.Acquire(1000) then
- Log(lbMutex,'Acquired')
- else
- Log(lbMutex,'Not acquired');
- end; { TfrmMain.btnAcquireClick }
-
- procedure TfrmMain.btnReleaseClick(Sender: TObject);
- begin
- GpFileMutexMonitor1.Release;
- Log(lbMutex,'Released');
- end; { TfrmMain.btnReleaseClick }
-
- procedure TfrmMain.GpFileGroupMonitor1Empty(Sender: TObject);
- begin
- lblGroup.Caption := '>Empty<';
- Log(lbGroup,'>Empty');
- end; { TfrmMain.GpFileGroupMonitor1Empty }
-
- procedure TfrmMain.GpFileGroupMonitor1NotEmpty(Sender: TObject);
- begin
- lblGroup.Caption := '<Not empty>';
- Log(lbGroup,'>Not empty');
- end; { TfrmMain.GpFileGroupMonitor1NotEmpty }
-
- procedure TfrmMain.btnJoinGroupClick(Sender: TObject);
- var
- isFirst: boolean;
- begin
- if GpFileGroupMonitor1.Join(1000,isFirst) then
- Log(lbGroup,'Joined, '+IntToStr(Ord(isFirst)))
- else
- Log(lbGroup,'Not joined');
- end; { TfrmMain.btnJoinGroupClick }
-
- procedure TfrmMain.btnLeaveGroupClick(Sender: TObject);
- var
- wasLast: boolean;
- begin
- if GpFileGroupMonitor1.Leave(1000,wasLast) then
- Log(lbGroup,'Left, '+IntToStr(Ord(wasLast)))
- else
- Log(lbGroup,'Not left');
- end; { TfrmMain.btnLeaveGroupClick }
-
- end.
-